From 2d6e12d67a546d61af715416fc5424c3625e6d00 Mon Sep 17 00:00:00 2001 From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Sat, 27 Apr 2024 13:35:28 -0600 Subject: [PATCH] add Ubuntu noble to CI (#1273) * add ubuntu noble docker support * update qt6 packages for noble. noble has some new qt6 packages that alleviate the need to directly install some libraries. also, the dependencies of some qt6 packages have been improved allowing us to specify what we use more directly. this results in the same set of packges being installed. * remove dependent qt5 package * add noble to CI --- .github/workflows/ubuntu.yml | 7 +++ tools/Dockerfile_noble | 94 ++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 tools/Dockerfile_noble diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index d4c8cec17..4385a76ad 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -31,6 +31,13 @@ jobs: CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt6' SCRIPT: './tools/build_and_test_cmake.sh' TOOLS: 'clang' + - IMAGE: 'noble' + CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt6' + SCRIPT: './tools/build_and_test_cmake.sh' + - IMAGE: 'noble' + CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt6' + SCRIPT: './tools/build_and_test_cmake.sh' + TOOLS: 'clang' - IMAGE: 'jammy' CMAKE_PREFIX_PATH: '/usr/lib/x86_64-linux-gnu/cmake/Qt5' SCRIPT: './tools/build_extra_tests.sh' diff --git a/tools/Dockerfile_noble b/tools/Dockerfile_noble new file mode 100644 index 000000000..498f1ac39 --- /dev/null +++ b/tools/Dockerfile_noble @@ -0,0 +1,94 @@ +# this file is used to build the image gpsbabel_build_environment used by travis. + +FROM ubuntu:noble + +LABEL maintainer="https://github.com/tsteven4" + +WORKDIR /app + +# update environment. +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && apt-get install -y --no-install-recommends \ + apt-utils \ + && apt-get upgrade -y \ + && rm -rf /var/lib/apt/lists/* + +# install packages needed for gpsbabel build +# split into multiple commands to limit layer size + +# basic build and test tools +RUN apt-get update && apt-get install -y --no-install-recommends \ + g++ \ + make \ + autoconf \ + git \ + valgrind \ + expat \ + libxml2-utils \ + bear \ + cmake \ + ninja-build \ + clazy \ + clang-tidy \ + jq \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# alternative compiler +RUN apt-get update && apt-get install -y --no-install-recommends \ + clang \ + && rm -rf /var/lib/apt/lists/* + +# pkgs needed to build document +RUN apt-get update && apt-get install -y --no-install-recommends \ + fop \ + xsltproc \ + docbook-xml \ + docbook5-xml \ + docbook-xsl \ + docbook-xsl-ns \ + libavalon-framework-java \ + jing \ + && rm -rf /var/lib/apt/lists/* + +# pkgs with libraries needed by gpsbabel +RUN apt-get update && apt-get install -y --no-install-recommends \ + libusb-1.0-0-dev \ + pkg-config \ + libudev-dev \ + && rm -rf /var/lib/apt/lists/* + +# pkgs with qt used by gpsbabel +RUN apt-get update && apt-get install -y --no-install-recommends \ + qtbase5-dev \ + qttools5-dev \ + qttranslations5-l10n \ + qtwebengine5-dev \ + libqt5serialport5-dev \ + && rm -rf /var/lib/apt/lists/* + +# pkgs with qt used by gpsbabel +RUN apt-get update && apt-get install -y --no-install-recommends \ + qt6-base-dev \ + qt6-5compat-dev \ + qt6-serialport-dev \ + libx11-xcb-dev \ + libxkbcommon-dev \ + qt6-tools-dev \ + qt6-translations-l10n \ + qt6-webengine-dev \ + qt6-wayland \ + && rm -rf /var/lib/apt/lists/* + +# pkgs needed to generate coverage report: +RUN apt-get update && apt-get install -y --no-install-recommends \ + gcovr \ + && rm -rf /var/lib/apt/lists/* + +# install environment for locale test +RUN apt-get update && apt-get install -y --no-install-recommends \ + locales \ + && rm -rf /var/lib/apt/lists/* \ + && sed -i 's/^# *\(en_US ISO-8859-1\)/\1/' /etc/locale.gen \ + && locale-gen \ + && locale -a -- 2.30.2